Data coding for fast start-up of prml receivers

ABSTRACT

In recording systems using partial-response maximum-likelihood detection (PRML) techniques, data sequences are preceded by a preamble consisting of all ones. Coding schemes are disclosed which allow to keep the number of consecutive ones occurring in the coded data sequences at a minimum, while simultaneously restricting the number of consecutive zeros in full and partial data sequences to a low value which is important for improving receiver operation. The disclosed coding schemes and apparatus enable a faster and more reliable discrimination between timing preambles and data sequences, thus allowing to use shorter timing preambles which results in faster receiver start-up and in a reduction of storage overhead for the preambles.

FIELD OF INVENTION

The present invention is concerned with data coding for systems usingpartial-response signaling with maximum-likelihood sequence detection(PRML). Such a signaling and detection scheme is useful e.g. formagnetic or optic storage of data, and for data transmission overcables. In particular, the invention is concerned with data coding inPRML systems to shorten the time needed for recognizing timing preamblesthat precede the data sequences to ensure proper timing and gainacquisition in the receiver, and to achieve a more reliable distinctionbetween arbitrary data sequences and the timing preamble.

BACKGROUND

Rate 8/9 constrained codes for partial-response class-IV signaling withmaximum-likelihood sequence detection (PRML) have been designed toachieve proper operation of gain and timing control loops and reductionof path-memory length of Viterbi detectors in PRML receivers. In thepresence of a precoder between partial-response class-IV (PR-IV) channeland rate 8/9 encoder, these two objectives are met by restricting themaximum run-length of 0's, denoted by G₀, in encoded binary sequences{b_(n) } and limiting the maximum number of consecutive 0's, denoted byI₀, in the two subsequences of {b_(n) } with even or odd time indices.An example of a system where G₀ and I₀ are both limited by appropriatecoding (either to 4 and 4, or to 3 and 6, respectively) is disclosed inU.S. Pat. No. 4,707,681 to Eggenberger.

It would be desirable to have coding schemes which can accomplish athird task, i.e. to speed up the start-up procedure of PRML receivers byshortening the minimum observation length required to distinguishreliably encoded user data from the timing preamble {1,1,1, . . . ,1,1}, which in many systems is part of training sequences precedingencoded data sequences {b_(n) }.

OBJECTS OF THE INVENTION

It is an object of the invention to devise a coding scheme for PRMLsystems by which the time required for distinguishing timing preamblesfrom coded data sequences is reduced.

It is another object to provide a coding scheme allowing to use shortertiming preambles.

A further object of the invention is a PRML coding scheme allowing theselection of code mappings which enable simple implementation ofencoders and decoders by logic gate arrays.

Another object of the invention is to provide a coding scheme forsystems using the PRML technique and using a timing preamble ofconsecutive ones which allows to maintain code constraints that areuseful for the proper operation of gain and timing control loops and forlimiting the path memory-length of Viterbi decoders in the receiver.

SUMMARY OF THE INVENTION

These objects are achieved by an encoding method and by encodingapparatus as defined in claims 1 and 7. Preferred particular embodimentsof this method and of encoding and decoding apparatus are defined in thedependent claims.

The invention attains the objects by limiting the number G₁ ofconsecutive ones in the encoded data sequence to a relatively low value,while maintaining the limitation in the numbers of consecutive zeros inthe full encoded sequence as well as in the even and odd numberedpartial sequences. The smaller the maximum run-length of 1's, denotedG₁, in encoded sequences {b_(n) }, the faster data can be discriminatedfrom the preamble. Since the timing preamble has to be long enough to bereliably detected by PRML receivers during start-up, smaller values ofG₁ allow shorter training sequences leading to faster synchronization ofPRML receivers. The presented 8/9 codes, referred to by the 3-tuple (G₀,I₀, G₁), permit reliable, fast start-up of PRML receivers and the lengthof the preamble detection window needs typically to be less than onehalf of the window required with earlier codes presented in U.S. Pat.No. 4,707,681.

Several coding schemes are disclosed which allow to select differentcombinations of code constraints so that a combination can be chosenwhich best suits the respective application. These schemes havefurthermore the property that decoding can be achieved without knowledgeof previously encoded data, thereby avoiding decoding error propagationin case of transmission errors.

Further disclosed are several code mapping schemes which allow toimplement the encoders (and decoders) for the presented coding schemeswith a small number of logic gates.

These and other advantages will become more apparent from the followingdescription of preferred embodiments of the invention with reference tothe drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic representation of the structure of stored datasequences which comprise a timing preamble;

FIG. 2A is a block diagram representation of a system in which presentinvention finds application;

FIG. 2B is a more detailed block diagram of the encoder section of thesystem of FIG. 2A;

FIGS. 3A, 3B and 3C show for one specific code a pattern, in the matrixof all 9-bit words, which indicates the preselection of all potentialcodewords; the partitioning of the matrix of all possible 8-bit inputwords into nine subsets, to facilitate assignment between coder inputand output words; and the assignment between input and output subsets;

FIG. 4 shows for another code the pattern, in the matrix of all 9-bitwords, which indicates the preselection of all potential codewords;

FIGS. 5A, 5B and 5C show similar selections and assignments as in FIGS.3A, 3B and 3C, for a further code;

FIGS. 6A and 6B are block diagrams of a finite-state encoder and of adecoder for the implementation of the invention which is represented bythe selection and assignment matrices of FIGS. 5A, 5B and 5C.

Tables 1 through 6 show the encoder logic and the decoder logic forthree different implementations of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT Data Format withPreambles

FIG. 1 shows an example of the structure of a data sequence when storedin a magnetic recording medium (magnetic disk). As can be seen, eachdata record is stored separately. The data section of each record ispreceded by a timing preamble and a synchronizing pattern; these arenecessary for initiating the receiver to properly read the recordeddata.

It is important that the timing preamble is correctly distinguished fromthe data. If the data can comprise any arbitrary bit patterns, includingsuch which resemble the used timing preamble (i.e. {1, 1, 1, . . . }),relatively long timing preambles must be used and relatively much timeis required for reliable detection and discrimination.

To shorten this time, the present invention suggests to add a constraintto the coded data sequences such that bit patterns corresponding to sucha timing preamble will only occur in limited length. This allows afaster distinction between the data and the preamble, and as aconsequence allows to use shorter timing preambles (which require lessstorage space).

Basic Model

A system in which present invention is used can be represented by thefollowing three main blocks depicted in FIG. 2A: rate 8/9 encoder 11,precoder 13, and PR-IV channel 15. In the following, input-outputrelationship of these blocks are discussed in detail. B denotes thebinary alphabet {0,1}.

Magnetic-recording channels are baseband channels with a transfercharacteristic exhibiting a spectral null at frequency f=0, a spectralmaximum at a frequency that depends on the particular recording-systemparameters and an exponential decay at higher frequencies. Therefore,they are particularly well suited to be treated as a PR-IV system afterthe channel-output signal is filtered in an appropriate manner. ThePR-IV channel 15 is preceded by a precoder 13 whose input sequence isthe encoded sequence {b_(n) }, b_(n) εB, and whose output sequence{c_(n) }, c_(n) εB, is given by ##EQU1## where ⊕ denotes mod 2 additionand overbar stands for negation. The input symbols of the PR-IV channeld_(n) ε{+1, -1} and the precoder-output symbols c_(n) are related toeach other (as shown by block 17) by the correspondence d_(n) =2c_(n)-1, where c_(n) have to be interpreted as the real numbers 0 or 1. Theternary output sequence of the PR-IV channel {y_(n) } can then bewritten as ##EQU2## where (1) was used to obtain the relationshipbetween b_(n) and y_(n). Note that the all-zero sequence and the timingpreamble (the all-one sequence) at the input of the precoder result inthe all-zero sequence and {. . . , +2, +2, -2, -2, +2, +2, -2, -2, . . .}, respectively, at the output of the PR-IV channel.

The run-length of O's in the output sequence {y_(n) } of the PR-IVchannel and in its two subsequences with even or odd time indices haveto be limited in order to aid the automatic gain control and timingrecovery, and reduce the length of path memory in the Viterbi detector.This can be achieved by a method and apparatus as disclosed in U.S. Pat.No. 4,707,681 to Eggenberger. The maximum run-length of channel outputsy_(n) identical to the timing preamble at the output of the PR-IVchannel { . . . , +2, +2, -2, -2, . . . } must also be reduced to permitreliable, fast start-up of PRML receivers. These goals can be achievedefficiently by present invention using a rate 8/9 encoder 11 followed bya precoder 13 that translates the desired run-length constraintsoriginally defined at the output of the PR-IV channel into simplerun-length constraints (G₀, I₀, G₁) at the output of the rate 8/9encoder.

Precoding does not affect the performance of data communication systemsemploying binary PR-IV signaling and maximum-likelihoodsequence-detection. However, the presence of a precoder can lead tosmaller run-length constraints at the output of the PR-IV channel ifencoders are restricted to a specific class. For example, in the absenceof a precoder, the class of rate 8/9 block encoders with outputblock-size equal to 9 cannot produce channel-output sequences {y_(n) }which have at most u=4 consecutive 0's and whose two subsequences witheven or odd time indices have at most v=4 consecutive 0's. This can beexplained as follows. There are no more than 216 binary 9-tuples whichlead to PR-IV sequences {y_(n) } satisfying the constraints u=4 and v=4when they are transmitted over the PR-IV channel in any order. On theother hand, when the PR-IV channel is preceded by a precoder, there are279 binary 9-tuples which can be juxtaposed in any order, and rate 8/9block codes with output block-size equal to 9 that give rise tochannel-output sequences constrained by u=4 and v=4 can be constructed(cf. U.S. Pat. No. 4,707,681 mentioned above).

The input of the rate 8/9 encoder {a_(n) }, a_(n) ε B, is anunconstrained binary sequence and the encoder output {b_(n) }, b_(n) εB, satisfies the following Boolean equations ##EQU3## where n is anyinteger, `+` denotes the Boolean OR operation and `·` stands for theBoolean AND operation. Equation (3) limits the maximum run-length of 0'sin the encoder-output sequence to G₀. Equation (4) does not allow themaximum number of consecutive 0's in the two encoder-output subsequenceswith even or odd time indices to exceed I₀. Finally, equation (5)ensures that the maximum run-length of 1's in the encoder-outputsequence is not greater than G₁. In the following, the encoder outputwill be designated as a (G₀, I₀, G₁)-constrained sequence.

Encoder Input and Output

FIG. 2B shows more detail of the encoder section 11 of FIG. 2A. Theencoder proper 11B which accepts 8-bit input blocks X and furnishes9-bit output codewords Y, is preceded by a serial-to-parallel converter11A which converts the serial stream of bits a_(n) into the input blocksX. At the output side of the encoder, a parallel-to-serial converter 11Cconverts the codewords Y into a serial bit stream of bits b_(n).

Encoders And Decoders For Selected Block Codes

The encoder for an (n,k) block code with rate equal to k/n assigns toevery block of k input symbols a block of n output symbols. Themotivation for the use of (9,8) block codes as opposed to non-blockcodes is the simplicity of the encoder/decoder hardware associated withblock codes. The nonlinear binary (9,8) block codes designed so far wereconstructed with the objective of minimizing the constraints G₀ and I₀(cf. e.g. U.S. Pat. No. 4,707,681). In the following, simpleencoder/decoder realizations of two optimum (9,8) block codes whichminimize the parameter G₁ in addition to G₀ and I₀ are presented. Interms of the 3-tuple (G₀, I₀, G₁), these codes are characterized by(4,6,5) and (4,4,9). The smallest sum of constraints G₀ +I₀ +G₁achievable with a (9,8) block code is 15. This minimum is only attainedby (4,6,5) and (4,5,6) among all constraints (G₀, I₀, G₁ ).

Encoder/Decoder For (4,6,5) Code

An encoder/decoder realization of the (4,6,5) code is described first.The encoder design starts by selecting all 9-tuples Y=(Y₁,Y₂, . . . ,Y₉) εB⁹ which satisfy the following Boolean equations

    (Y.sub.1 +Y.sub.2 +Y.sub.3)·(Y.sub.2 +Y.sub.3 +Y.sub.4 +Y.sub.5 +Y.sub.6)·(Y.sub.3 +Y.sub.4 +Y.sub.5 +Y.sub.6 +Y.sub.7)·

     (Y.sub.4 +Y.sub.5 +Y.sub.6 +Y.sub.7 +Y.sub.8)·(Y.sub.7 +Y.sub.8 +Y.sub.9)=1                                               (6)

    (Y.sub.1 +Y.sub.3 +Y.sub.5 +Y.sub.7)·(Y.sub.3 +Y.sub.5 +Y.sub.7 +Y.sub.9)·(Y.sub.2 +Y.sub.4 +Y.sub.6 +Y.sub.8)=1 (7)

and either

    Y.sub.1 ·Y.sub.2 ·Y.sub.3 +Y.sub.2 ·Y.sub.3 ·Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7

     +Y.sub.3 ·Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7 ·Y.sub.8 +Y.sub.6 ·Y.sub.7 ·Y.sub.8 ·Y.sub.9 =0                    (8a)

    or

    Y.sub.1 ·Y.sub.2 ·Y.sub.3 ·Y.sub.4 +Y.sub.2 ·Y.sub.3 ·Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7

     +Y.sub.3 ·Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7 ·Y.sub.8 +Y.sub.7 ·Y.sub.8 ·Y.sub.9 =0                                      (8b)

where (6), (7) and (8a) are used to generate a list L₁ of 263 codewordsand (6), (7) and (8b) another list L₂ of 263 codewords. By discardingall 9-tuples Y which begin or end with more than two 0's or have a runof five or more 0's, equation (6) ensures that the constraint G₀ =4 issatisfied. Equation (7) guarantees I₀ =6 by limiting the run-length of0's within Y₁ Y₃ Y₅ Y₇ Y₉ and Y₂ Y₄ Y₆ Y₈ to three.

Finally, equation (8a) ((8b)) ensures G₁ =5 by eliminating all Y whichbegin with more than two (three) 1's or end with more than three (two)1's or have a run of six or more 1's. Note that if Y=(Y₁, Y₂, . . . ,Y₉) ε L₁ then Y'=(Y₉, Y₈, . . . , Y₁) ε L₂. Hence the codewords in onelist can be simply obtained by reversing the codewords in the otherlist. The (4,6,5) block code presented here comprises 256 codewords andwas arbitrarily chosen to be a subset of L₁ as opposed to L₂. The 263potential codewords in L₁ will be illustrated as 263 specific locationsmarked " " within the 16×32 array shown in FIG. 3A, whose (i,j)-thlocation at the intersection of the i-th row, i=0,1, . . . , 15, and thej-th column, j=0,1, . . . , 32, corresponds to the 9-tuple Y=(Y₁, Y₂, .. . , Y₉) where Y₉ Y₈ Y₇ Y₆ and Y₅ Y₁ Y₂ Y₃ Y₄ are the binaryrepresentations of the decimal numbers i and j, respectively. Note thatthe left half of the above array corresponds to Y₅ =0 whereas the righthalf corresponds to Y₅ =1. The locations in L₁ (4,6,5) marked "-"represent 9-tuples which are not allowed to be used as codewords in the(4,6,5) block code presented here.

There are numerous block codes that can be derived from the array L₁(4,6,5), and the codewords in each code can be assigned to 256 8-bitbytes in 256! ways. Thus, the number of all encoder mappings associatedwith the array L₁ (4,6,5) is very large. Thus, it is desirable to choosean encoder mapping that leads to simple encoder/decoder realizations.

The space of all encoder input bytes B8 is divided into 9 pairwisedisjoint sets A_(k), k=1,2, . . . , 9. The elements of the subset A_(k)will be illustrated as specific locations marked "k" within the 16×16array shown in FIG. 3B, whose (i,j)-th location at the intersection ofthe i-th row, i=0,1, . . . , 15, and the j-th column, j=0,1, . . . , 15,corresponds to the byte X=(X₁, X₂, . . . , X₈) where X₈ X₇ X₆ X₅ and X₁X₂ X₃ X₄ are the binary representations of the decimal numbers i and j,respectively.

Similarly, the elements of D_(k), k=1,2, . . . ,9, the images of A_(k)under the encoder mapping, are illustrated as specific locations marked"k" within the 16×32 array shown in FIG. 3C, whose (i,j)-th location atthe intersection of the i-th row, i=0,1, . . . ,15, and the j-th column,j=0,1, . . . ,31, corresponds to the 9-tuple Y=(Y₁, Y₂, . . . , Y₉)where Y₉ Y₈ Y₇ Y₆ and Y₅ Y₁ Y₂ Y₃ Y₄ are the binary representations ofthe decimal numbers i and j, respectively.

The pattern of ₋ 's in D (4,6,5) represent all 9-tuples which cannot beused as codewords and is the same as the pattern of -'s in L₁ (4,6,5).The seven 9-tuples in L₁ which are not used as codewords in the (4,6,5)block code presented here correspond to locations marked " " in D(4,6,5). The partitions A₁ and D₁ are as follows: the patterns of 1's inA (4,6,5) and in the right half of D (4,6,5) are the same as the patternof 's in the right half of L₁ (4,6,5). The other subsets A_(k), k=2,3, .. . , 9, and their images under the encoder mapping D_(k), k=2,3, . . .,9, are simultaneously chosen such that the number of logic gates neededis as small as possible. Note that the choice of partitions A_(k) andD_(k) and of the one-to-one correspondences between A_(k) and D_(k) doesnot follow any rules except for k=1.

The encoder and decoder logic of the (4,6,5) code is shown in Tables 1and 2, respectively. In the sequel, the overbar used in the tablesdenotes negation in the Boolean algebra. Intermediate variables V_(i),i=1,2, . . . ,7, for the encoder and W_(i), i=1,2, . . . ,9, for thedecoder were used to reduce the number of logic gates. For the samepurpose, superpartitions S_(i), i=1,2, . . . ,9, for the encoder andT_(i), i=1,2, . . . ,6, for the decoder were introduced as the union ofpartitions. The decoder includes an optional error flag F which israised (i.e., F=1) when the decoder input is an illegal codeword.

Minimum Value of Constraints Sum

In the following, σ denotes the sum of all three constraints, i.e.,

    σ=G.sub.0 +I.sub.0 +G.sub.1.                         (9)

The block codes presented so far achieve σ=15. To find out the smallestσ achievable with a (9,8) block code, the maximum number of freelyconcatenatable 9-tuples, n_(max), was determined for all relevantconstraints. The smallest σ achievable with an encoder for a (9,8) blockcode is only attained by (4,5,6) and (4,6,5).

Encoder/Decoder for (4,4,9) Code

An encoder/decoder realization of the (4,4,9) block code was obtained bymodifying the encoder/decoder logic associated with one block code givenin U.S. Pat. No. 4,707,681.

The conditions for the selection of output codewords are given byequation (6) and the following two equations:

    (Y.sub.1 +Y.sub.3 +Y.sub.5)·(Y.sub.5 +Y.sub.7 +Y.sub.9)·(Y.sub.2 +Y.sub.4 +Y.sub.6)·(Y.sub.4 +Y.sub.6 +Y.sub.8)=1,                                              (10)

and either

    Y.sub.1 ·Y.sub.2 ·Y.sub.3 ·Y.sub.4 ·Y.sub.5 ·Y.sub.6 +Y.sub.5 ·Y.sub.6 ·Y.sub.7 ·Y.sub.8 ·Y.sub.9 =0, (11a)

    or

    Y.sub.1 ·Y.sub.2 ·Y.sub.3 ·Y.sub.4 ·Y.sub.5 +Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7 ·Y.sub.8 ·Y.sub.9 =0, (11B)

where (6), (10) and (11a) are used to generate a list L₁ of 259codewords and (6), (12) and (11b) another list L₂ of 259 codewords.Equations (6) and (10) ensure G₀ =4 and I₀ =4, whereas (11a) or (11b)guarantees G₁ =9. Note that the codewords in L₂ can be simply obtainedby reversing the codewords in L₁. The (4,4,9) block code presented herecomprises 256 codewords and was arbitrarily chosen to be a subset of L₁.

The 259 codewords in L₁ will be again illustrated as locations marked "" within a 16×32 array L₁ (4,4,9) shown in FIG. 4.

Tables 3 and 4 show encoder and decoder logic of the (4,4,9) codeincluding an optional error detection flag F, which is raised when thedecoder input is an illegal codeword. Note that the notation associatedwith the encoder/decoder partitions in U.S. Pat. No. 4,707,681 has beenadopted. The codeword assignments were chosen such that the logicrealizations of the encoder and decoder are simple.

The two encoder/decoder realizations presented above correspond tooptimum (9,8) block codes, i.e., none of the constraints G₀, I₀ and G₁can be decreased further without relaxing another one.

Finite-State Encoders

The block encoders discussed in the previous section break theinformation sequence into blocks and handle them independently. In thefollowing, a further encoder will be described which is a finite-statemachine, i.e. in this encoder the output is not only dependent on thepresent input but also depends on previous encoded inputs. This encoderallows an even better reduction in run-lengths. Decoders which are usedwith this finite-state encoder need not to be finite-state machines butcan be block decoders.

Encoder and Decoder for (4,6,4) Code

The encoder for the (4,6,4) code is a finite-state machine where theencoder state is defined as the last bit of the preceding codeword.Similar to the decoders discussed above, the decoder associated with the(4,6,4) code can be realized as a block decoder which maps every 9-bitblock at its input into a block of 8 bits. The (4,6,4) code performsbetter than the block codes described above, i.e., it achieves G₀ =4, G₁=4 and σ=14, and yet its encoder/decoder implementation is almost assimple as the ones for block codes.

In the following, the (4,6,4) code and its encoder/decoder realizationare described. A list L of 230 codewords is obtained by selecting all9-tuples Y=(Y₁, Y₂, . . . , Y₉) ε B⁹ which satisfy (6), (7) and

    Y.sub.1 ·Y.sub.2 ·Y.sub.3 +Y.sub.2 ·Y.sub.3 ·Y.sub.4 ·Y.sub.5 ·Y.sub.6 +Y.sub.3 ·Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7

     +Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7 ·Y.sub.8 +Y.sub.7 ·Y.sub.8 ·Y.sub.9 =0.(12)

Conditions (6) and (7) ensure G₀ =4 and I₀ =6, whereas (12) guaranteesG₁ =4. The codewords in L do not begin with more than two 0's or 1's.However, if the last bit of the preceding codeword, henceforth denotedZ, is known, the next codeword may start with three or four 0's in thecase Z=1 and three or four 1's in the case Z=0. There are 26 binary9-tuples which begin with three or four 0's and do not violate (7), (12)and a modified version of (6) with (Y₁ +Y₂ +Y₃) replaced by (Y₁ +Y₂ +Y₃+Y₄ +Y₅) to allow the codewords to begin with three or at most four 0's.Similarly, there are 35 binary 9-tuples which begin with three or four1' s and do not violate (6), (7) and a modified version of (12) with (Y₁·Y₂ ·Y₃) replaced by (Y₁ ·Y₂ ·Y₃ ·Y₄ ·Y₅) to allow the codewords tobegin with three or at most four 1's.

The 230 codewords in L, the 26 codewords following Z=1 and the 35 binary9-tuples following Z=0 will be illustrated as specific locations marked" ", "1" and "0", respectively, within the 16×32 array shown in FIG. 5A,where the definition with respect to the correspondence between an arraylocation and a 9-tuple in FIG. 3A applies. The pattern of ₋ 's in L(4,6,4) represents all 9-tuples which cannot be used as codewords. Thespace of 256 input bytes B8 is divided into 13 pairwise disjoint setsA_(k), k=1,2, . . . , 9, a, b, c, d, where the subscript k is ahexadecimal number.

The elements of the subsets A_(k), k=1,2, . . . ,d, will be illustratedas specific locations marked "k" within the 16×16 array shown in FIG. 5Bwhere the definition with respect to the correspondence between an arraylocation and an 8-tuple in FIG. 3B applies. The 230 bytes in A (4,6,4)marked "k", k=1,2, . . . , 9,a,b, are mapped independent of the encoderstate Z into the 230 binary 9-tuples in L(4,6,4) marked " " where theimages of A_(k), k=1,2, . . . ,b, are D_(k), k=1,2, . . . ,b. Theremaining 26 bytes in A(4,6,4) marked "c" and "d" are mapped either intothe 26 codewords in L (4,6,4) marked "1" if Z=1 or into 26codewordschosen out of the 35 binary 9-tuples in L(4,6,4) marked " 0".

The elements of D_(k), k=1,2, . . . ,b, are illustrated as locationsmarked "k" within the 16×32 array shown in FIG. 5C, where the definitionwith respect to the correspondence between an array location and a9-tuple in FIG. 3C applies. The images of the 26 bytes in A_(k), k=c,d,depend on the encoder state Z and are specified by the locations marked"c" and "d" in the above array. The pattern of ₋ 's in D (4,6,4)represent all 9-tuples which are not used as codewords and comprises thepattern of -'s in L(4,6,4) in addition to 35-26=9 unused 9-tuples markedby "0" in L (4,6,4).

The (4,6,4) encoder/decoder structure is shown in FIG. 6 (6A and 6B).The encoder logic 19 has, besides the eight inputs for bits X₁, X₂, . .. , X₈ and the nine outputs for bits Y₁, Y₂, . . . , Y₉, one extra inputZ which is connected through a delay element 21 to the bit output Y₉.The delay element represents a time delay corresponding to the period ofthe byte clock. Thus, an input bit block X may be converted to twodifferent output codewords Y, depending on the last bit of the previousoutput codewood.

The decoder need not to be a finite-state machine (sequential decoder).A normal block decoder 23 is sufficient which directly converts acodeword Y into an 8-bit block X. For the error detection logic 25,however, an extra input Z is required, receiving the last bit Y₉ of theprevious codeword through a delay element 27.

The encoder and decoder logic is shown in Tables 5 and 6, respectively.Logic gate arrays implementing these logic equations are contained inthe encoder logic 19, the decoder logic 23, and the error detectionlogic 25, respectively, of FIGS. 6A and 6B. Intermediate variablesV_(i), i=1,2, . . . ,22, for the encoder and W_(i), i=1,2, . . . ,17,for the decoder were used to reduce the number of logic gates. Anoptional error flag F, which is raised when the decoder input is anillegal codeword, is provided.

                                      TABLE 1                                     __________________________________________________________________________    (4,6,5) Encoder Logic.                                                        __________________________________________________________________________    VARIABLES        PARTITIONS      SUPERPARTITIONS                              V.sub.1 = X.sub.1 + X.sub.2 + X.sub.3                                                          P.sub.1 = V.sub.1 · V.sub.2 · V.sub.3                       · V.sub.4 · V.sub.5 ·                                              S.sub.1 = P.sub.5 + P.sub.6 = .sup.--                                         V.sub.1                                       ##STR1##         P.sub.2 = .sup.-- P.sub.1 · X.sub.3 ·                      X.sub.4 · (.sup.-- X.sub.1 + .sup.-- X.sub.2)                                         S.sub.2 = P.sub.5 + P.sub.7                 V.sub.3 = X.sub.6 + X.sub.7 + X.sub.8                                                          P.sub.3 = .sup.--  P.sub.1 · .sup.-- X.sub.2                         · .sup.-- X.sub.4 · (X.sub.1 +                              X.sub.3)        S.sub.3 = P.sub.1 + S.sub.2                   ##STR2##         P.sub.4 = .sup.-- P.sub.1 · .sup.-- P.sub.2                         · .sup.-- P.sub.3 · V.sub.1 ·                      V.sub.2          S.sub.4 = P.sub.2 + P.sub.8 + S.sub.3       V.sub.5 = X.sub.2 + X.sub.4 + X.sub.5 + X.sub.7                                                P.sub.5 = .sup.-- V.sub.1 · V.sub.7                                                  S.sub.5 = P.sub.6 + P.sub.8 +  P.sub.9        ##STR3##         P.sub.6 = .sup.-- V.sub.1 · .sup.-- V.sub.7                                          S.sub.6 = P.sub.1 + P.sub.2                 V.sub.7 = (X.sub.6 + X.sub.8) · V.sub.4                                               P.sub.7 = .sup.-- V.sub.2 · V.sub.3 ·                       .sup.-- X.sub.5 S.sub.7 = P.sub.2 + P.sub.3                                   P.sub.8 = .sup.-- V.sub.2 · V.sub.4 ·                       V.sub.5         S.sub.8 = P.sub.4 + P.sub.9                                    ##STR4##        S.sub.9 = P.sub.7 + S.sub.1                 ENCODER OUTPUT                                                                Y.sub.1 = P.sub.3 · .sup.-- X.sub.1 + P.sub.4 · X.sub.8     + P.sub.9 + S.sub.1 + S.sub.6 · X.sub.1                              Y.sub.2 = P.sub.3 · .sup.-- X.sub.3 + P.sub.4 · X.sub.5     · .sup.-- X.sub.6 + P.sub.8 + S.sub.8 · X.sub.2 +           S.sub.9 · X.sub.4                                                    Y.sub.3 = P.sub.1 · X.sub.3 + P.sub.7 + S.sub.7 + S.sub.8            Y.sub.4 = P.sub.1 · X.sub.4 + P.sub.8 · X.sub.4 +           S.sub.2 + S.sub.8                                                             Y.sub.5 = P.sub.1                                                             Y.sub.6 = P.sub.3 + P.sub.4 + P.sub.6 + P.sub.8 · X.sub.6 +          S.sub.3 · X.sub.5                                                    Y.sub.7 = P.sub.2 · X.sub.8 + P.sub.3 · (X.sub.5 +          X.sub.6 + .sup.-- X.sub.8) + P.sub.4 · .sup.-- X.sub.4 + S.sub.3     · X.sub.6 + S.sub.5 · X.sub.5                               Y.sub.8 = P.sub.4 · (.sup.-- X.sub.1 · .sup.-- X.sub.3      + .sup.-- X.sub.2) + P.sub.6 · X.sub.7 · .sup.--            X.sub.8 + P.sub.9 · X.sub.4 + S.sub.4 · X.sub.7 +           S.sub.7 · .sup. -- X.sub.8                                            ##STR5##                                                                     __________________________________________________________________________

                                      TABLE 2                                     __________________________________________________________________________    (4,6,5) Decoder Logic.                                                        __________________________________________________________________________    VARIABLES     PARTITIONS       SUPERPARTITIONS                                W.sub.1 = .sup.-- Y.sub.4 · .sup.-- Y.sub.5                                        Q.sub.1 = Y.sub.5                                                                              T.sub.1 = Q.sub.1 + Q.sub.2                    W.sub.2 = Y.sub.4 · .sup.-- Y.sub.5                                                Q.sub.2 = W.sub.1 · W.sub.5                                                           T.sub.2 = Q.sub.7 + Q.sub.8 + Q.sub.9          W.sub.3 = Y.sub.3 · Y.sub.6                                                        Q.sub.3 = W.sub.1 · W.sub.3                                                           T.sub.3 = Q.sub.1 + Q.sub.5 + Q.sub.7          W.sub.4 = Y.sub.1 · .sup.-- Y.sub.3                                                Q.sub.4 = W.sub.2 · W.sub.3                                                           T.sub.4 = Q.sub.9 + T.sub.3                    W.sub.5 = Y.sub.3 ·  .sup.-- Y.sub.6                                               Q.sub.5 = W.sub.2 · W.sub.4                                                           T.sub.5 = Q.sub.6 + Q.sub.8 + Q.sub.9          W.sub.6 = .sup.-- Y.sub.1 · .sup.-- Y.sub.5                                        Q.sub.6 = W.sub.1 · W.sub.4                                                           T.sub.6 = Q.sub.5 + Q.sub.6 + Q.sub.7           ##STR6##      Q.sub.7 = W.sub.6 · W.sub.5 · Y.sub.4        W.sub.8 = Y.sub.7 · Y.sub.8                                                        Q.sub.8 = W.sub.6 · .sup.-- Y.sub.3                    W.sub.9 = Y.sub.7 · Y.sub.9                                                        Q.sub.9 = W.sub.2 · W.sub.5 · Y.sub.1         DECODER OUTPUT                                                                X.sub.1 = Q.sub.3  · .sup.-- Y.sub.1 + Q.sub.4 ·            Y.sub.9 + T.sub.1 · Y.sub.1 + T.sub.2                                 ##STR7##                                                                     X.sub.3 = Q.sub.1 · Y.sub.3 + Q.sub.2 + Q.sub.3 ·           .sup.-- Y.sub.2 + Q.sub.4 · W.sub.7 + T.sub.2                        X.sub.4 = Q.sub.1 · Y.sub.4 + Q.sub.2 + Q.sub.4 ·           .sup.-- Y.sub.7 + Q.sub.8 · Y.sub.4 + Q.sub.9 · Y.sub.8     + T.sub.6 · Y.sub.2                                                  X.sub.5 = Q.sub.2 · (Y.sub.7  + .sup.-- Y.sub.9) + Q.sub.3           · (W.sub.8 + W.sub.9) + Q.sub.4 · (Y.sub.1 + Y.sub.2) +     T.sub.3 · Y.sub.6 + T.sub.5 · Y.sub.7                       X.sub.6 = (Q.sub.2 + T.sub.3) · Y.sub.7 + Q.sub.3 ·         .sup.-- Y.sub.8 + Q.sub.4 · Y.sub.1 + Q.sub.6 · W.sub.7     + Q.sub.8 · Y.sub.8 + Q.sub.9 · Y.sub.7                     X.sub.7 = Q.sub.2 · W.sub.8 + Q.sub.3 · W.sub.9 +           Q.sub.4 · Y.sub.1 + Q.sub.6 · (Y.sub.8 + W.sub.7) +         Q.sub.9 · Y.sub.7 + T.sub.4 · Y.sub.8                       X.sub.8 = Q.sub.2 · W.sub.9 + (Q.sub.3 + T.sub.4) ·         Y.sub.9 + Q.sub.4 · Y.sub.1 + Q.sub.6 · W.sub.7 +           Q.sub.9 · Y.sub.7                                                    ERROR DETECTION FLAG                                                           ##STR8##                                                                      ##STR9##                                                                     (.sup.-- Y.sub.1 + .sup.-- Y.sub.3 + .sup.-- Y.sub.4 + Y.sub.6 + Y.sub.9)     · (Y.sub.4 + Y.sub.6 + Y.sub.7 + Y.sub.8)}                           __________________________________________________________________________

                                      TABLE 3                                     __________________________________________________________________________    (4,4,9) Encoder Logic.                                                        __________________________________________________________________________    VARIABLES       PARTITIONS                                                    V.sub.1 = X.sub.1 · X.sub.2 · X.sub.3 ·            X.sub.4 · X.sub.5                                                                    M = (X.sub.2 + V.sub.5) · (X.sub.7 + V.sub.5)                        · (X.sub.4 + X.sub.5 + X.sub.2 ·                            X.sub.7) · .sup.-- V.sub.1 · .sup.--                        V.sub.3 · .sup.-- V.sub.4                            V.sub.2 = X.sub.5 · X.sub.6 · X.sub.7 ·            X.sub.8         H = .sup.-- X.sub.2 · V.sub.5 ·                             V.sub.4                                                       V.sub.3 = X.sub.4 · V.sub.2                                                          T.sub.1 = V.sub.1 · V.sub.6                                                          T.sub.2 = V.sub.3 · V.sub.5          V.sub.4 =  .sup.-- X.sub.4 · V.sub.2                                                 M.sub.1 = M + V.sub.5 · X.sub.4 ·                           .sup.-- T.sub.1 M.sub.2 = M + V.sub.6 · X.sub.5                                      · .sup.-- T.sub.2 ·                                         .sup.--H                                      V.sub.5 = X.sub.1 + X.sub.3                                                                   N.sub.1 = -- M · V.sub.5 · .sup.--                          X.sub.4 · .sup.-- H                                                                  N.sub.2 = -- M · V.sub.6                                             · .sup.-- X.sub.5                    V.sub.6 = X.sub.5 + X.sub.8                                                                   R.sub.1 = -- M · .sup.-- V.sub.5 ·                          X.sub.2         R.sub.2 = -- M · .sup.-- V.sub.6                                     ·  X.sub.7                                           S.sub.1 = -- M · .sup.-- V.sub.5 ·                          .sup.-- X.sub.2 S.sub.2 = -- M · .sup.-- V.sub.6                                     · .sup.-- X.sub.7                    ENCODER OUTPUT                                                                Y.sub.1 = M.sub.1 · X.sub.1 + N.sub.1 · X.sub.1 +           R.sub.1 + S.sub.1 · X.sub.4 + T.sub.1 + H                            Y.sub.2 = M.sub.1 · X.sub.2 + R.sub.1 + S.sub.1 + T.sub.1 + H        Y.sub.3 = M.sub.1 · X.sub.3 + N.sub.1 · X.sub.3 +           R.sub.1 + S.sub.1 · .sup.-- X.sub.4 + T.sub.1 + H                    Y.sub. 4 = M.sub.1 · X.sub.4 + N.sub.1 · .sup.--            X.sub.2 + R.sub.1 · .sup.-- X.sub.4 + S.sub.1 ·             (.sup.-- X.sub.5 + S.sub.2) + H                                               Y.sub.5 = M                                                                   Y.sub.6 = M.sub.2 · X.sub.5 + N.sub.2 · .sup.-- X.sub.7     + R.sub.2 · .sup.-- X.sub.5 + S.sub.2 · (.sup.--            X.sub.4 + S.sub.1)                                                            Y.sub.7 = M.sub.2 · X.sub.6 + N.sub.2 · X.sub.6 +           R.sub.2 + S.sub.2 · .sup.-- X.sub.5 + T.sub.2 + H ·         X.sub.3                                                                       Y.sub.8 =  M.sub.2 · X.sub.7 + R.sub.2 + S.sub.2 + T.sub.2           Y.sub.9 = M.sub.2 · X.sub.8 + N.sub.2 · X.sub.8 +           R.sub.2 + S.sub.2 · X.sub.5 + T.sub.2 + H · X.sub.1         __________________________________________________________________________

                                      TABLE 4                                     __________________________________________________________________________    (4,4,9) Decoder Logic.                                                        __________________________________________________________________________    VARIABLES               PARTITIONS                                            W.sub.1 = Y.sub.1 · Y.sub.2 · Y.sub.3                                               M.sub.1 = Y.sub.5 + W.sub.5                                                               M.sub.2 = Y.sub.5 + W.sub.6               W.sub.2 = W.sub.1 · Y.sub.4                                                                  N.sub.1 = -- M.sub.1 · .sup.-- Y.sub.2                                           N.sub.2 = -- M.sub.2 ·                                               .sup.-- Y.sub.8                           W.sub.3 = Y.sub.7 · Y.sub.8 · Y.sub.9                                               R.sub.1 = -- M.sub.1 · W.sub.1                                       · W.sub.7                                                                        R.sub.2 = -- M.sub.2 ·                                               W.sub.3 · W.sub.8                W.sub.4 = W.sub.3 · Y.sub.6                                                                  T.sub.1 = -- M.sub.1 · W.sub. 1                                      · .sup.-- Y.sub.4 · .sup.--                                 R.sub.1     T.sub.2 = -- M.sub.2 ·                                               W.sub.3 · .sup.-- R.sub.2         W.sub.5 = Y.sub.4 · Y.sub.8 · .sup.-- Y.sub.6                                       ##STR10##                                                                                 ##STR11##                                W.sub.6 = Y.sub.6 · Y.sub.2 · .sup.-- Y.sub.4 + W.sub.4     · (.sup.-- Y.sub.2 · .sup.-- Y.sub.4 + W.sub.2)                                      H = -- M.sub.1 · W.sub.2 ·                                 .sup.-- Y.sub.6                                        ##STR12##                                                                     ##STR13##                                                                    DECODER OUTPUT                                                                X.sub.1 = M.sub.1 · Y.sub.1 + N.sub.1 · Y.sub.1 +           T.sub.1 + H · Y.sub.9                                                X.sub.2 = M.sub.1 · Y.sub.2 + N.sub.1 · .sup.-- Y.sub.4     + R.sub.1 + T.sub.1                                                           X.sub.3 = M.sub.1 · Y.sub.3 + N.sub.1 · Y.sub.3 +           T.sub.1 + H · Y.sub.7                                                X.sub.4 = M.sub.1 · Y.sub.4 + R.sub.1 · .sup.-- Y.sub.4     + T.sub.1 + S.sub.1 · .sup.-- Y.sub.3                                X.sub.5 = M.sub.2 · Y.sub.6 + R.sub.2 · .sup.-- Y.sub.6     + T.sub.2 + S.sub.2 · .sup.-- Y.sub.7 + H                            X.sub.6 = M.sub.2 · Y.sub.7 + N.sub.2 · Y.sub.7 +           T.sub.2 + H                                                                   X.sub.7 = M.sub.2 · Y.sub.8 + N.sub.2 · .sup.-- Y.sub.6     + R.sub.2  + T.sub.2 + H                                                      X.sub.8 = M.sub.2 · Y.sub.9 + N.sub.2 · Y.sub.9 +           T.sub.2 + H                                                                   ERROR DETECTION FLAG                                                           ##STR14##                                                                    (Y.sub.1 + Y.sub.3) · (Y.sub.7 + Y.sub.9) · (Y.sub.4 +      Y.sub.6 + Y.sub.2 · W.sub.3 + W.sub.1 · Y.sub.8)            __________________________________________________________________________

                                      TABLE 5                                     __________________________________________________________________________    (4,6,4) Encoder Logic.                                                        __________________________________________________________________________    VARIABLES  PARTITIONS                   SUPERPARTITIONS                       V.sub.1 = X.sub.1 + X.sub.2                                                              P.sub.1 = V.sub.7 · V.sub.11 · V.sub.14                                 P.sub.8 = V.sub.19 · V.sub.4 ·                              .sup.-- V.sub.20 S.sub.1 = P.sub.1 + P.sub.2           V.sub.2 = V.sub.1 + X.sub.3                                                              P.sub.2 = V.sub.14 · .sup.-- V.sub.11                                            P.sub.9 = V.sub.19 · V.sub.20                                                         S.sub.2 = S.sub.1 + P.sub.3 +                                                 P.sub.2                               V.sub.3 = X.sub.6 + X.sub.7 + X.sub.8                                                    P.sub.3 = .sup.-- V.sub.5 · V.sub.15                                             P.sub.10 = .sup.-- V.sub.3 · .sup.--                                 V.sub. 1 · V.sub.17 + V.sub.18 ·                            .sup.-- V.sub.10 · .sup.-- X.sub.8                                                    S.sub.3 = S.sub.1 + P.sub.4 +                                                 P.sub.12                               ##STR15##  P.sub.4 = V.sub.16 · V.sub.9                                                     P.sub.11 = .sup.-- V.sub.4 · .sup.--                                V.sub.3           S.sub.4 = S.sub.3 + P.sub.13          ##STR16##  P.sub.5 = .sup.-- V.sub.5 · .sup.-- V.sub.15                                     P.sub.12 = V.sub.13 · (.sup.-- V.sub.17                             · V.sub.6 + V.sub.18 · V.sub.10)                                              S.sub.5 = P.sub.9 + P.sub.11          V.sub.6 = X.sub.5 + X.sub.7                                                              ##STR17##   P.sub.13 = V.sub.16 · .sup.-- V.sub.9                                                 S.sub.6 = P.sub.12 + P.sub.13        V.sub.7 = V.sub.6 + X.sub.2 + X.sub.4                                                    P.sub.7 = .sup.-- V.sub.7 · V.sub.14                                                              S.sub.7 = P.sub.6 + P.sub.7            ##STR18##                               S.sub.8 = P.sub.3 + P.sub.8           ##STR19##                                                                    V.sub.10 = .sup.-- X.sub.7 + V.sub.9                                          V.sub.11 = (V.sub.8 + V.sub.9) · (.sup.-- X.sub.2 + V.sub.8 +        .sup.-- X.sub.5) · (V.sub.10 + .sup.-- X.sub.4)                      V.sub.12 = V.sub.2 · V.sub.4                                         V.sub.13 = V.sub.3 · V.sub.5                                         V.sub.14 = V.sub.12 · V.sub.13                                       V.sub.15 = V.sub.8 · V.sub.12                                        V.sub.16 = .sup.-- V.sub.4 · V.sub.13                                V.sub.17 = V.sub.2 + X.sub.4                                                  V.sub.18 = .sup.-- V.sub.2 · X.sub.4                                 V.sub.19 = .sup.-- V.sub.3 · V.sub.1                                 V.sub.20 = .sup.--  X.sub.2 · (X.sub.3 + .sup.-- X.sub.4)            V.sub.21 = X.sub.4 + X.sub.3 · .sup.-- X.sub.5                       V.sub.22 = X.sub.4 + X.sub.3 · X.sub.5                               ENCODER OUTPUT                                                                Y.sub.1 = S.sub.2 · X.sub.1 + P.sub.4 · X.sub.4 +           P.sub.5 · (X.sub.1 + .sup.-- X.sub.3) + P.sub.6 ·           X.sub.8 + P.sub.7 · .sup.-- X.sub.1 + S.sub.5 · X.sub.5     + P.sub.10 · X.sub.3 + S.sub.6 · .sup.-- Z                  Y.sub.2 = S.sub.2 · X.sub.2 + P.sub.5 · X.sub.2 +           P.sub.6 ·  .sup.-- X.sub.6 + P.sub.7 · .sup.-- X.sub.3      + S.sub.5 · V.sub.21 + P.sub.10 · X.sub.4 + S.sub.6         · .sup.-- Z                                                          Y.sub.3 = S.sub.2 · X.sub.3 + P.sub.4 + P.sub.5 ·           V.sub.12 + P.sub.6 · X.sub.6 + P.sub.7 + P.sub.9 ·          .sup.-- V.sub.22 + P.sub.10 · .sup.-- X.sub.3 + P.sub.11             · .sup.-- X.sub.5 + S.sub.6 · .sup.-- Z                     Y.sub.4 = S.sub.2 · X.sub.4 + P.sub.4 + P.sub.5 ·           .sup.-- X.sub.4 +  P.sub.6 · X.sub.5 + P.sub.10 + P.sub.11           · V.sub.22 + P.sub.12 · X.sub.4 + P.sub.13 ·       Y.sub.5 = P.sub.1 + P.sub.12 · Z + P.sub.13 · .sup.--       Z                                                                             Y.sub.6 = S.sub.3 · X.sub.5 + P.sub.3 + P.sub.5 + P.sub.7            · .sup.-- X.sub.6 + P.sub.9 + P.sub.13 · X.sub.4            Y.sub.7 = S.sub.3 · X.sub.6 + S.sub.8 + P.sub.6 ·           S.sub.5 + P.sub.13                                                            Y.sub.8 = S.sub.4 · X.sub.7 + P.sub.5 · X.sub.5 +           S.sub.5 + S.sub.7 + P.sub.10 · X.sub.5                               Y.sub.9 = S.sub.4 · X.sub.8 + S.sub.8 · X.sub.5 +           P.sub.5 + P.sub.7 · .sup.-- X.sub.8 + P.sub.10 ·            .sup.-- X.sub.6                                                               __________________________________________________________________________

                                      TABLE 6                                     __________________________________________________________________________    (4,6,4) Decoder Logic                                                         __________________________________________________________________________    VARIABLES    PARTITIONS                SUPERPARTITIONS                         ##STR20##    Q.sub.1 = Y.sub.5 · W.sub.1                                                                    T.sub.1 = Q.sub.1 + Q.sub.2           W.sub.2 = .sup.-- Y.sub.5 · W.sub.1                                               Q.sub.2 = W.sub.10 · Y.sub.6 + W.sub.6 ·                    (Y.sub.8 · W.sub.12 + W.sub.5 · .sup.--                     Y.sub.8)                  T.sub.2 = Q.sub.3 + Q.sub.8            W.sub.3 = Y.sub.6 · Y.sub.7                                                       Q.sub.3 = W.sub.2 · .sup.-- Y.sub.8 ·                       W.sub.3 · -- W.sub.4 · W.sub.12                                                       T.sub.3 = T.sub.1 +  T.sub.2           W.sub.4 = Y.sub.3 · Y.sub.4                                                       Q.sub.4 = .sup.-- Y.sub.5 · .sup.-- Y.sub.2                          · W.sub.4 · -- W.sub.3                                                                T.sub.4 = Q.sub.4 + Q.sub.11 +                                                Q.sub.13                               W.sub.5 = .sup.-- Y.sub.2 · Y.sub.3                                               Q.sub.5 = W.sub.2 · .sup.-- Y.sub.7 · --                    W.sub.4 · W.sub.13                                                                             T.sub.5 = T.sub.1 + Q.sub.4 +                                                 Q.sub.12                                W.sub.6 = Y.sub.4 · W.sub.3                                                       ##STR21##                 T.sub.6 = Q.sub.9 + Q.sub.11          W.sub.7 = Y.sub.7 · .sup.-- Y.sub.6                                               Q.sub.7 = W.sub.2 · .sup.-- Y.sub.4 ·                       .sup.-- Y.sub.7 · -- W.sub.13                                                                  T.sub.7 = Q.sub.5 + Q.sub.10           W.sub.8 = Y.sub.8 · W.sub.7                                                       Q.sub.8 = W.sub.2 · W.sub.12 · .sup.--                      Y.sub.8 · W.sub.7 · -- W.sub.5                                                        T.sub.8 = Q.sub.3 + Q.sub.5            W.sub.9 = Y.sub.2 · .sup.-- Y.sub.3                                               Q.sub.9 = W.sub.2 · .sup.-- Y.sub.4 ·                       Y.sub.8 · W.sub.3                                                                              T.sub.9 = T.sub.5 + Q.sub.13           W.sub.10 = .sup.-- Y.sub.1 · Y.sub.2 · W.sub.4                           Q.sub.10 = .sup.-- Y.sub.5 · .sup.-- Y.sub.6                         · .sup.-- Y.sub.7 · (.sup.-- Y.sub.3                        · Y.sub.4 + W.sub.10)                                   W.sub.11 = Y.sub.2 + Y.sub.3                                                               Q.sub.11 = .sup.-- Y.sub.5 · W.sub.8 ·                      (.sup.-- Y.sub.1 · Y.sub.2 · Y.sub.3 +                      Y.sub.1 · .sup.-- Y.sub.3 · Y.sub.4)           W.sub.12 = W.sub.11 + Y.sub.1                                                              Q.sub.12 = .sup.-- Y.sub.5 · -- W.sub.1                 W.sub. 13 = Y.sub.6 · Y.sub.9                                                     Q.sub.13 = .sup.-- Y.sub.5 · -- W.sub.12 + Y.sub.5                   · W.sub.1                                               W.sub.14 = Y.sub.4 + Y.sub.8                                                  W.sub.15 = Y.sub.3 · Y.sub.7                                         W.sub.16 = W.sub.14 · Y.sub.8                                        W.sub.17 = W.sub.1 + Y.sub.4                                                  DECODER OUTPUT                                                                X.sub.1 = T.sub.3 · Y.sub.1 + T.sub.4 + Q.sub.5 ·           Y.sub.1 · W.sub.11 + Q.sub.7 · .sup.-- Y.sub.1 +            Q.sub.9                                                                       X.sub.2 = (T.sub.3 + Q.sub.5) · Y.sub.2 + T.sub.4                    X.sub.3 = T.sub.3 · Y.sub.3 + T.sub.4 + Q.sub.5 ·           W.sub.11 +  Q.sub.7 · .sup.-- Y.sub.2 + Q.sub.9 · --        W.sub.5 + Q.sub.10 · Y.sub.1                                         X.sub.4 = (T.sub.3 · Q.sub.12) · Y.sub.4 + Q.sub.4          · Y.sub.1 + Q.sub.5 · .sup.-- Y.sub.4 + Q.sub.9             · W.sub.9 + Q.sub.10 · Y.sub.2 + Q.sub.11 ·        Y.sub.2 · Y.sub.4 + Q.sub.13 · Y.sub.6                      X.sub.5 = T.sub.5 · Y.sub.6 + T.sub.2 · Y.sub.9 +           T.sub.7 · Y.sub.8 + Q.sub.6 · Y.sub.4 + T.sub.6             · Y.sub.1 + Q.sub.13                                                 X.sub.6 = T.sub.5 · Y.sub.7 + T.sub.8 +  Q.sub.6 ·          Y.sub.3 + Q.sub.7 · .sup.-- Y.sub.6 + Q.sub.10 ·            .sup.-- Y.sub.9 + Q.sub.13                                                    X.sub.7 = T.sub.9 · Y.sub.8 + T.sub.8 + Q.sub.10 ·          .sup.-- Y.sub.9                                                               X.sub.8 = T.sub.9 · Y.sub.9 + T.sub.8 + Q.sub.6 ·           Y.sub.1 + Q.sub.7 · .sup.-- Y.sub.9                                  ERROR DETECTION FLAG                                                           ##STR22##                                                                    (-- W.sub.4 + -- W.sub.3) · (W.sub.1 + Y.sub.7) + .sup.--            Y.sub.5 · (W.sub.12 + Y.sub.4) · (Y.sub.1 + W.sub.15)       · (Y.sub.9 + W.sub.15) · (W.sub.12 + Y.sub.7)               · (W.sub.11 + W.sub.14) ·                                    ##STR23##                                                                    __________________________________________________________________________

We claim:
 1. Method for encoding binary data being partitioned intoblocks each having a first given number of bits, into codewords eachhaving a second given number of bits, said method comprising the stepsof:receiving the binary data; producing sequences of fixed-lengthcodewords; said sequences having no more than a first preselected number(G₀) of consecutive zeros therein; said sequences comprising twosubsequences, one consisting only of odd bit positions, and anotherconsisting only of even bit positions, each of said subsequences havingno more than a second preselected number of (I₀) of consecutive zerostherein; and said sequences further having no more than a thirdpreselected number (G₁) of consecutive ones therein.
 2. A methodaccording to claim 1, for encoding data from which by partitioning 8-bitdata blocks were formed, into 9-bit codewords, comprising the stepsof:selecting from the set of all possible 9-bit words Y=(Y₁, Y₂, . . . ,Y₉) a full subset (L₁) of 263 potential codewords satisfying the logicconditions

    (Y.sub.1 +Y.sub.2 +Y.sub.3)·(Y.sub.2 +Y.sub.3 +Y.sub.4 +Y.sub.5 +Y.sub.6)·(Y.sub.3 +Y.sub.4 +Y.sub.5 +Y.sub.6 +Y.sub.7)·

     (Y.sub.4 +Y.sub.5 +Y.sub.6 +Y.sub.7 +Y.sub.8)·(Y.sub.7 +Y.sub.8 +Y.sub.9)=1

    (Y.sub.1 +Y.sub.3 +Y.sub.5 +Y.sub.7)·(Y.sub.3 +Y.sub.5 +Y.sub.7 +Y.sub.9)·(Y.sub.2 +Y.sub.4 +Y.sub.6 +Y.sub.8)=1,

    and

    Y.sub.1 ·Y.sub.2 ·Y.sub.3 +Y.sub.2 ·Y.sub.3 ·Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7

     +Y.sub.3 ·Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7 ·Y.sub.8 +Y.sub.6 ·Y.sub.7 ·Y.sub.8 ·Y.sub.9 =0;

selecting from the full subset of potential codewords, a partial subsetof 256 actual codewords; assigning to each one of the actual codewordsof the partial subset, one of the 256 possible 8-bit data blocks; andfor encoding, replacing each data block by the assigned codeword; suchthat for the resulting sequence of codewords, said first preselectednumber (G₀) is four, said second preselected number (I₀) is six, andsaid third preselected number (G₁) is five.
 3. A method according toclaim 1, for encoding data from which by partitioning 8-bit data blockswere formed, into 9-bit codewords, comprising the steps of:selectingfrom the set of all possible 9-bit words Y=(Y₁, Y₂, . . . , Y₉) a fullsubset (L₂) of 263 potential codewords satisfying the logic conditions

    (Y.sub.1 +Y.sub.2 +Y.sub.3)·(Y.sub.2 +Y.sub.3 +Y.sub.4 +Y.sub.5 +Y.sub.6)·(Y.sub.3 +Y.sub.4 +Y.sub.5 +Y.sub.6 +Y.sub.7)·

     (Y.sub.4 +Y.sub.5 +Y.sub.6 +Y.sub.7 +Y.sub.8)·(Y.sub.7 +Y.sub.8 +Y.sub.9)=1

    (Y.sub.1 +Y.sub.3 +Y.sub.5 +Y.sub.7)·(Y.sub.3 +Y.sub.5 +Y.sub.7 +Y.sub.9)·(Y.sub.2 +Y.sub.4 +Y.sub.6 +Y.sub.8)=1,

    and

    Y.sub.1 ·Y.sub.2 ·Y.sub.3 ·Y.sub.4 +Y.sub.2 ·Y.sub.3 ·Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7

     +Y.sub.3 ·Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7 ·Y.sub.8 +Y.sub.7 ·Y.sub.8 ·Y.sub.9 =0;

selecting from the full subset of potential codewords, a partial subsetof 256 actual codewords; assigning to each one of the actual codewordsof the partial subset, one of the 256 possible 8-bit data blocks; andfor encoding, replacing each data block by the assigned codeword; suchthat for the resulting sequence of codewords, said first preselectednumber (G₀) is four, said second preselected number (I₀) is six, andsaid third preselected number (G₁) is five.
 4. A method according toclaim 1, for encoding data from which by partitioning 8-bit data blockswere formed, into 9-bit codewords, comprising the steps of:selectingfrom the set of all possible 9-bit words Y=(Y₁, Y₂, . . . , Y₉) a fullsubset (L₁) of 259 potential codewords satisfying the logic conditions

    (Y.sub.1 +Y.sub.2 +Y.sub.3)·(Y.sub.2 +Y.sub.3 +Y.sub.4 +Y.sub.5 +Y.sub.6)·(Y.sub.3 +Y.sub.4 +Y.sub.5 +Y.sub.6 +Y.sub.7)·

     (Y.sub.4 +Y.sub.5 +Y.sub.6 +Y.sub.7 +Y.sub.8)·(Y.sub.7 +Y.sub.8 +Y.sub.9)=1

    (Y.sub.1 +Y.sub.3 +Y.sub.5)·(Y.sub.5 +Y.sub.7 +Y.sub.9)·(Y.sub.2 +Y.sub.4 +Y.sub.6)·(Y.sub.4 +Y.sub.6 +Y.sub.8)=1,

    and

    Y.sub.1 ·Y.sub.2 ·Y.sub.3 ·Y.sub.4 ·Y.sub.5 ·Y.sub.6 +Y.sub.5 ·Y.sub.6 ·Y.sub.7 ·Y.sub.8 ·Y.sub.9 =0;

selecting from the full subset of potential codewords, a partial subsetof 256 actual codewords; assigning to each one of the actual codewordsof the partial subset, one of the 256 possible 8-bit data blocks; andfor encoding, replacing each data block by the assigned codeword; suchthat for the resulting sequence of codewords, said first preselectednumber (G₀) is four, said second preselected number (I₀) is four, andsaid third preselected number (G₁) is nine.
 5. A method according toclaim 1, for encoding data from which by partitioning 8-bit data blockswere formed, into 9-bit codewords, comprising the steps of:selectingfrom the set of all possible 9-bit words Y=(Y₁, Y₂, . . . , Y₉) a fullsubset (L₁) of 259 potential codewords satisfying the logic conditions

    (Y.sub.1 +Y.sub.2 +Y.sub.3)·(Y.sub.2 +Y.sub.3 +Y.sub.4 +Y.sub.5 +Y.sub.6) (Y.sub.3 +Y.sub.4 +Y.sub.5 +Y.sub.6 +Y.sub.7)·

     (Y.sub.4 +Y.sub.5 +Y.sub.6 +Y.sub.7 +Y.sub.8)·(Y.sub.7 +Y.sub.8 +Y.sub.9)=1

    (Y.sub.1 +Y.sub.3 +Y.sub.5)·(Y.sub.5 +Y.sub.7 +Y.sub.9)·(Y.sub.2 +Y.sub.4 +Y.sub.6)·(Y.sub.4 +Y.sub.6 +Y.sub.8)=1,

    and

    Y.sub.1 ·Y.sub.2 ·Y.sub.3 ·Y.sub.4 ·Y.sub.5 +Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7 ·Y.sub.8 ·Y.sub.9 =0;

selecting from the full subset of potential codewords, a partial subsetof 256 actual codewords; assigning to each one of the actual codewordsof the partial subset, one of the 256 possible 8-bit data blocks; andfor encoding, replacing each data block by the assigned codeword; suchthat for the resulting sequence of codewords, said first preselectednumber (G₀) is four, said second preselected number (I₀) is four, andsaid third preselected number (G₁) is nine.
 6. A method according toclaim 1, for encoding data from which by partitioning a sequence of8-bit data blocks was formed, into a sequence of 9-bit codewords,comprising the steps of:selecting from the set of all possible 9-bitwords Y=(Y₁, Y₂, . . . , Y₉) a first full subset (L) of 230 actualcodewords satisfying the logic conditions

    (Y.sub.1 +Y.sub.2 +Y.sub.3)·(Y.sub.2 +Y.sub.3 +Y.sub.4 +Y.sub.5 +Y.sub.6)·(Y.sub.3 +Y.sub.4 +Y.sub.5 +Y.sub.6 +Y.sub.7)·

     (Y.sub.4 +Y.sub.5 +Y.sub.6 +Y.sub.7 +Y.sub.8)·(Y.sub.7 +Y.sub.8 +Y.sub.9)=1

    (Y.sub.1 +Y.sub.3 +Y.sub.5 +Y.sub.7)·(Y.sub.3 +Y.sub.5 +Y.sub.7 +Y.sub.9)·(Y.sub.2 +Y.sub.4 +Y.sub.6 +Y.sub.8)=1,

    and

    Y.sub.1 ·Y.sub.2 ·Y.sub.3 +Y.sub.2 ·Y.sub.3 ·Y.sub.4 ·Y.sub.5 ·Y.sub.6 +Y.sub.3 ·Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7

     +Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7 ·Y.sub.8 +Y.sub.7 ·Y.sub.8 ·Y.sub.9 =0;

a second subset (1) of 26 actual first conditional codewords with Y₁ =Y₂=Y₃ =0, satisfying the logic conditions

    (Y.sub.4 +Y.sub.5)·(Y.sub.4 +Y.sub.5 +Y.sub.6)·(Y.sub.4 +Y.sub.5 +Y.sub.6 +Y.sub.7)·

     (Y.sub.4 +Y.sub.5 +Y.sub.6 +Y.sub.7 +Y.sub.8)·(Y.sub.7 +Y.sub.8 +Y.sub.9)=1,

    (Y.sub.5 +Y.sub.7)·(Y.sub.5 +Y.sub.7 +Y.sub.9)·(Y.sub.4 +Y.sub.6 +Y.sub.8)=1,

    and

    Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7 ·Y.sub.8 +Y.sub.7 ·Y.sub.8 ·Y.sub.9 =0;

a third subset (0) of 35 potential second conditional codewords with Y₁=Y₂ =Y₃ =1, satisfying the logic conditions

    (Y.sub.4 +Y.sub.5 +Y.sub.6 +Y.sub.7 +Y.sub.8)·(Y.sub.7 +Y.sub.8 +Y.sub.9)=1

    and

    Y.sub.4 ·Y.sub.5 +Y.sub.4 ·Y.sub.5 ·Y.sub.6 +Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7

     +Y.sub.4 ·Y.sub.5 ·Y.sub.6 ·Y.sub.7 ·Y.sub.8 +Y.sub.7 ·Y.sub.8 ·Y.sub.9 =0;

selecting from the third subset of potential second conditionalcodewords, a partial subset of 26 actual second conditional codewords;assigning to each one of the actual codewords of the subsets, one of the256 possible 8-bit data blocks, with 26 of said possible 8-bit datablocks each being assigned to one first conditional codeword and to onesecond conditional codeword; and for encoding, replacing each data blockby the assigned codeword, the selection of the conditional codewordsdepending on the binary value of the last bit of the previouslygenerated codeword; such that for the resulting sequence of codewords,said first preselected number (G₀) is four, said second preselectednumber (I₀) is six, and said third preselected number (G₁) is four. 7.Apparatus for encoding binary data into codewords, said apparatuscomprising:receiver means for receiving the binary data and forpartitioning them into blocks each comprising a first given number ofbits; encoder means, coupled to the receiver means, for producingsequences of fixed-length codewords each comprising a second givennumber of bits; said sequences having no more than a first preselectednumber (G₀) of consecutive zeros therein; said sequences comprising twosubsequences, one consisting only of odd bit positions, and anotherconsisting only of even bit positions, each of said subsequences havingno more than a second preselected number (I₀) of consecutive zerostherein; and said sequences further having no more than a thirdpreselected number (G₁) of consecutive ones therein, said thirdpreselected number (G₁) being less than or equal to ten.
 8. Apparatusaccording to claim 7, comprising an encoder for converting 8-bit inputdata blocks X=(X₁, X₂, . . . , X₈) into 9-bit output codewords Y=(Y₁,Y₂, . . . , Y₉), said encoder having logic gates for implementing thelogic relations

    __________________________________________________________________________    Y.sub.1 = P.sub.3 · .sup.-- X.sub.1 + P.sub.4 · X.sub.8     + P.sub.9 + S.sub.1 + S.sub.6 · X.sub.1                              Y.sub.2 = P.sub.3 · .sup.-- X.sub.3 + P.sub.4 · X.sub.5     · X.sub.6 + P.sub.8 + S.sub.6 · X.sub.2 + S.sub.9           · X.sub.4                                                            Y.sub.3 = P.sub.1 · X.sub.3 + P.sub.7 + S.sub.7 + S.sub.8            Y.sub.4 = P.sub.1 · X.sub.4 + P.sub.8 · X.sub.4 +           S.sub.2 + S.sub.8                                                             Y.sub.5 = P.sub.1                                                             Y.sub.6 = P.sub.3 + P.sub.4 + P.sub.6 + P.sub.8 ·  X.sub.6 +         S.sub.3 · X.sub.5                                                    Y.sub.7 = P.sub.2 · X.sub.6 + P.sub.3 · (X.sub.5 +          X.sub.6 · .sup.-- X.sub.8) + P.sub.4 · .sup.-- X.sub.4      + S.sub.3 · X.sub.6 + S.sub.5 · X.sub.5                     Y.sub.8 = P.sub.4 · (.sup.-- X.sub.1 · .sup.-- X.sub.3      + .sup.-- X.sub.2) + P.sub.6 · X.sub.7 · .sup.--            X.sub.8 + P.sub.9 · X.sub.4 + S.sub.4 · X.sub.7 +           S.sub.7 · .sup.-- X.sub.6                                             ##STR24##                                                                    with                                                                          V.sub.1 = X.sub.1 + X.sub.2 + X.sub.3                                                          P.sub.1 = V.sub.1 · V.sub.2 · V.sub.3                       · V.sub.4 · V.sub.5 ·                              V.sub.6         S.sub.1 = P.sub.5 + P.sub.8 = .sup.--                                         V.sub.1                                       ##STR25##       P.sub.2 = .sup.-- P.sub.1 · X.sub.3 ·                       X.sub.4 · (.sup.-- X.sub.1 + .sup.--  X.sub.2)                                       S.sub.2 = P.sub.5 + P.sub.7                  V.sub.3 = X.sub.6 + X.sub.7 + X.sub.8                                                          P.sub.3 = .sup.-- P.sub.1 · .sup.-- X.sub.2                          · .sup.-- X.sub.4 · (X.sub.1 +                              X.sub.3)        S.sub.3 = P.sub.1 + S.sub.2                   ##STR26##       P.sub.4 = .sup.-- P.sub.1 · .sup.-- P.sub.2                          · .sup.-- P.sub.3 · V.sub.1 ·                      V.sub.2         S.sub.4 = P.sub.2 + P.sub.8 + S.sub.3        V.sub.5 = X.sub.2 + X.sub.4  + X.sub.5 + X.sub.7                                               P.sub.5 = .sup.-- V.sub.1 · V.sub.7                                                  S.sub.5 = P.sub.6 + P.sub.8 + P.sub.9         ##STR27##       P.sub.6 = .sup.-- V.sub.1 · .sup.-- V.sub.7                                          S.sub.6 = P.sub.1 + P.sub.2                  V.sub.7 = (X.sub.6 + X.sub.8) · V.sub.4                                               P.sub.7 = .sup.-- V.sub.2 · V.sub.3 ·                       .sup.-- X.sub.5 S.sub.7 = P.sub.2 + P.sub.3                                   P.sub.8 = .sup.-- V.sub.2 · V.sub.4  ·                      X.sub.5         S.sub.8 = P.sub.4 + P.sub.9                                    ##STR28##      S.sub.9 = P.sub.7 + S.sub.1                  __________________________________________________________________________

such that in response to an arbitrary sequence of input data blocks, forthe resulting sequence of output codewords said first preselected number(G₀) is four, said second preselected number (I₀) is six, and said thirdpreselected number (G₁) is five.
 9. Apparatus according to claim 7,comprising an encoder for converting 8-bit input data blocks X=(X₁, X₂,. . . , X₈) into 9-bit output codewords Y=(Y₁, Y₂, . . . , Y₉), saidencoder having logic gates for implementing the logic relations

    __________________________________________________________________________    Y.sub.1 = M.sub.1 · X.sub.1 + N.sub.1 · X.sub.1 +           R.sub.1 + S.sub.1 · X.sub.4 + T.sub.1 + H                            Y.sub.2 = M.sub.1 · X.sub.2 + R.sub.1 + S.sub.1 + T.sub.1 + H        Y.sub.3 = M.sub.1 · X.sub.3 + N.sub.1 · X.sub.3 +           R.sub.1 + S.sub.1 · .sup.-- X.sub.4 + T.sub.1 + H                    Y.sub.4 = M.sub.1 · X.sub.4 + N.sub.1 · .sup.-- X.sub.2     + R.sub.1 · .sup.-- X.sub.4 + S.sub.1 · (.sup.--            X.sub.5 + S.sub.2) +  H                                                       Y.sub.5 = M                                                                   Y.sub.6 = M.sub.2 · X.sub.5 + N.sub.2 · .sup.-- X.sub.7     + R.sub.2 · .sup.-- X.sub.5 + S.sub.2 · (.sup.--            X.sub.4 + S.sub.1)                                                            Y.sub.7 = M.sub.2 · X.sub.6 + N.sub.2 · X.sub.6 +           R.sub.2 + S.sub.2 · .sup.-- X.sub.5 + T.sub.2 + H ·         X.sub.3                                                                       Y.sub.8 = M.sub.2 · X.sub.7 + R.sub.2 + S.sub.2 + T.sub.2            Y.sub.9 = M.sub.2 · X.sub.8 + N.sub.2 · X.sub.8 +           R.sub.2 + S.sub.2 · X.sub.5 + T.sub.2 +  H · X.sub.1        with                                                                          V.sub.1 = X.sub.1 · X.sub.2 · X.sub.3 ·            X.sub.4 · X.sub.5                                                                    M = (X.sub.2 + V.sub.5) · (X.sub.7 + V.sub.6)                        · (X.sub.4 + X.sub.5 + X.sub.2 ·                            X.sub.7) · .sup.-- V.sub.1 · .sup.--                        V.sub.3 · .sup.-- V.sub.4                            V.sub.2 = X.sub.5 · X.sub.6 · X.sub.7 ·            X.sub.8         H = .sup.-- X.sub.2 · V.sub.5 ·                             V.sub.4                                                       V.sub.3 = X.sub.4 · V.sub.2                                                          T.sub.1 = V.sub.1 · V.sub.6                                                           T.sub.2 = V.sub.3 · V.sub.5         V.sub.4 = .sup.--  X.sub.4 · V.sub.2                                                 M.sub.1 = M + V.sub.5 · X.sub.4 ·                           .sup.-- T.sub.1  M.sub.2 = M + V.sub.6 · X.sub.5                                      · .sup.-- T.sub.2 ·                                         .sup.--H                                     V.sub.5 = X.sub.1 + X.sub.3                                                                   N.sub.1 = -- M · V.sub.5 · .sup.--                          X.sub.4 · .sup.-- H                                                                   N.sub.2 = -- M · V.sub.6                                             · .sup.-- X.sub.5                   V.sub.6 = X.sub.6 + V.sub.8                                                                   R.sub.1 = -- M · .sup.-- V.sub.5 ·                          X.sub.2          R.sub.2 = -- M · .sup.--                                             V.sub.8 · X.sub.7                                   S.sub.1 = -- M · .sup.-- V.sub.5 ·                          .sup.-- X.sub.2  S.sub.2 = -- M · .sup.--                                             V.sub.6 · .sup.-- X.sub.7           __________________________________________________________________________

such that in response to an arbitrary sequence of input data blocks, forthe resulting sequence of output codewords said first preselected number(G₀) is four, said second preselected number (I₀) is four, and saidthird preselected number (G₁) is nine.
 10. Apparatus according to claim7, comprising an encoder for converting a sequence of 8-bit input datablocks X=(X₁, X₂, . . . , X₈) into 9-bit output codewords Y=(Y₁, Y₂, . .. , Y₉);said encoder being a sequential encoder (FIG. 6A) having nineoutputs for furnishing the nine bits of each output codeword; and havingnine inputs, eight of them being connected to receive the eight bits ofan input data block, and the ninth input (Z) being connected to theninth output through a delay element (21); said encoder comprising logicgates which implement the following logic relations

    __________________________________________________________________________    Y.sub.1 = S.sub.2 · X.sub.1 + P.sub.4 · X.sub.4 +           P.sub.5 · (X.sub.1 + .sup.-- X.sub.3) + P.sub.6 ·           X.sub.8 + P.sub.7 · .sup.-- X.sub.1 + S.sub.5 · X.sub.5     + P.sub.10 · X.sub.3 + S.sub.6 · .sup.-- Z                  Y.sub.2 = S.sub.2 · X.sub.2 + P.sub.5 · X.sub.2 +           P.sub.8 · .sup.-- X.sub.6 + P.sub.7 · .sup.-- X.sub.3 +     S.sub.5 · V.sub.21 + P.sub.10 · X.sub.4 + S.sub.6           · .sup.-- Z                                                          Y.sub.3 =  S.sub.2 · X.sub.3 + P.sub.4 + P.sub.5 ·          V.sub.12 + P.sub.6 · X.sub.6 + P.sub.7 + P.sub.9 ·          .sup.-- V.sub.22 + P.sub.10 · .sup.-- X.sub.3 + P.sub.11             · .sup.-- X.sub.5 + S.sub.6 · .sup.-- Z                     Y.sub.4 = S.sub.2 · X.sub.4 + P.sub.4 + P.sub.5 ·           .sup.-- X.sub.4 + P.sub.6 · X.sub.5 + P.sub.10 + P.sub.11            · V.sub.22 + P.sub.12 · X.sub.4 + P.sub.13 ·       Y.sub.5 = P.sub.1 + P.sub.12 · Z + P.sub.13 ·  .sup.--      Z                                                                             Y.sub.6 = S.sub.3 · X.sub.5 + P.sub.3 + P.sub.5 + P.sub.7            · .sup.-- X.sub.8 + P.sub.9 + P.sub.13 · X.sub.4            Y.sub.7 = S.sub.3 · X.sub.6 + S.sub.8 + P.sub.6 + S.sub.5 +          P.sub.13                                                                      Y.sub.8 = S.sub.4 · X.sub.7 + P.sub.5 · X.sub.5 +           S.sub.5 + S.sub.7 + P.sub.10 · X.sub.5                               Y.sub.9 = S.sub.4 · X.sub.8 + S.sub.8 · X.sub.5 +           P.sub.5 + P.sub.7 · .sup.-- X.sub.8 + P.sub.10 ·            .sup.-- X.sub.8                                                               with                                                                           V.sub.1 = X.sub.1 + X.sub.2                                                              ##STR29##                  V.sub.17 = V.sub.2 + X.sub.4           V.sub.2 = V.sub.1 + X.sub.3                                                              V.sub.10 = .sup.-- X.sub.7 + V.sub.9                                                                     V.sub.18 = .sup.-- V.sub.2                                                    · X.sub.4                      V.sub.3 = X.sub.6 + X.sub.7 + X.sub.8                                                    V.sub.11 = (V.sub.8 + V.sub.9) · (.sup.-- X.sub.2 +                  V.sub.8 + .sup.-- X.sub.5) · (V.sub.10 + .sup.--                     X.sub.4)                   V.sub.19 = .sup.-- V.sub.3                                                    · V.sub.1                       ##STR30##  V.sub.12 = V.sub.2 · V.sub.4                                                                    V.sub.20 = .sup.-- X.sub.2                                                   · (X.sub.3 + .sup.--                                                 X.sub.4)                                 ##STR31##  V.sub.13 = V.sub.3 · V.sub.5                                                                    V.sub.21 = X.sub.4 + X.sub.3                                                 · .sup.-- X.sub.5              V.sub.6 = X.sub.5 + X.sub.7                                                              V.sub.14 = V.sub.12 · V.sub.13                                                                  V.sub.22 = X.sub.4 + X.sub.3                                                  · X.sub.5                      V.sub.7 = V.sub.6 + X.sub.2 + X.sub.4                                                    V.sub.15 = V.sub.8 · V.sub.12                              ##STR32##  V.sub.16 = .sup.-- V.sub.4 · V.sub.13                    and                                                                           P.sub.1 = V.sub.7 · V.sub.11 · V.sub.14                                   P.sub.8 = V.sub.19 · V.sub.4 · .sup.--                      V.sub.20              S.sub.1 = P.sub.1 + P.sub.2               P.sub.2 = V.sub.14 · .sup.-- V.sub.11                                              P.sub.9 = V.sub.19 · V.sub.20                                                              S.sub.2 = S.sub.1 + P.sub.3 +                                                 P.sub.8                                   P.sub.3 = .sup.-- V.sub.5 · V.sub.15                                               P.sub.10 = .sup.-- V.sub.3 · .sup.-- V.sub.1                         · V.sub.17 + V.sub.18 · .sup.-- V.sub.10                    · .sup.--  X.sub.8                                                                         S.sub.3 = S.sub.1 + P.sub.4 +                                                 P.sub.12                                  P.sub.4 = V.sub.15 · V.sub.9                                                       P.sub.11 = .sup.-- V.sub.4 · .sup.-- V.sub.3                                               S.sub.4 = S.sub.3 + P.sub.13              P.sub.5 = .sup.-- V.sub.5 · .sup.-- V.sub.15                                       P.sub.12 = V.sub.13 · (.sup.-- V.sub.17 ·                   V.sub.6 + V.sub.18 · V.sub.10)                                                             S.sub.5 = P.sub.9 + P.sub.11               ##STR33##     P.sub.13 = V.sub.16 · .sup.-- V.sub.9                                                      S.sub.6 = P.sub.12 + P.sub. 13           P.sub.7 = .sup.-- V.sub.7 · V.sub.14                                                                     S.sub.7 = P.sub.6 + P.sub.7                                                   S.sub.8 = P.sub.3 + P.sub.8               __________________________________________________________________________

such that in response to an arbitrary sequence of input data blocks, forthe resulting sequence of output codewords said first preselected number(G₀) is four, said second preselected number (I₀) is six, and said thirdpreselected number (G₁) is four.
 11. Decoder apparatus for converting9-bit input codewords Y=(Y₁, Y₂, . . . , Y₉) generated by encoderapparatus according to claim 8, into 8-bit output data blocks X=(X₁, X₂,. . . , X₈), said decoder apparatus comprising logic gates whichimplement the following logic relations

    ______________________________________                                        X.sub.1 = Q.sub.3 · .sup.-- Y.sub.1 + Q.sub.4 · Y.sub.9     + T.sub.1 · Y.sub.1 + T.sub.2                                         ##STR34##                                                                    X.sub.3 = Q.sub.1 · Y.sub.3 + Q.sub.2 + Q.sub.3 ·           .sup.-- Y.sub.2 + Q.sub.4 · W.sub.7 + T.sub.2                        X.sub.4 = Q.sub.1 · Y.sub.4 + Q.sub.2 + Q.sub.4 ·           .sup.-- Y.sub.7 + Q.sub.8 · Y.sub.4 + Q.sub.9 · Y.sub.8     + T.sub.6 · Y.sub.2                                                  X.sub.5 = Q.sub.2 · (Y.sub.7 + .sup.-- Y.sub.9) + Q.sub.3            · (W.sub.8 + W.sub.9) + Q.sub.4 · (Y.sub.1 + Y.sub.2) +     T.sub.3 ·                                                            Y.sub.6 + T.sub.5 · Y.sub.7                                          X.sub.6 = (Q.sub.2 + T.sub.3) · Y.sub.7 + Q.sub.3 ·         .sup.-- Y.sub.8 + Q.sub.4 · Y.sub.1 + Q.sub.6 · W.sub.7     + Q.sub.8 · Y.sub.6 +                                                Q.sub.9 · Y.sub.7                                                    X.sub.7 = Q.sub.2 · W.sub.8 + Q.sub.3 · W.sub.9 +           Q.sub.4 · Y.sub.1 + Q.sub.6 · (Y.sub.8 + W.sub.7) +         Q.sub.9 ·                                                            Y.sub. 7 + T.sub.4 · Y.sub.8                                         X.sub.8 = Q.sub.2 · W.sub.9 + (Q.sub.3 + T.sub.4) ·         Y.sub.9 + Q.sub.4 · Y.sub.1 + Q.sub.6 · W.sub.7 +           Q.sub.9 · Y.sub.7                                                    with                                                                          W.sub.1 = .sup.-- Y.sub.4 · .sup.-- Y.sub.5                                      Q.sub.1 = Y.sub.5                                                                           T.sub.1 = Q.sub.1 + Q.sub.2                         W.sub.2 = Y.sub.4 · .sup.-- Y.sub.5                                              Q.sub.2 = W.sub.1 · W.sub.5                                                        T.sub.2 = Q.sub.7 + Q.sub.8 + Q.sub.9               W.sub.3 = Y.sub.3 · Y.sub.6                                                      Q.sub.3 = W.sub.1 · W.sub.3                                                        T.sub.3 = Q.sub.1 + Q.sub.5 +  Q.sub.7              W.sub.4 = Y.sub.1 · .sup.-- Y.sub.3                                              Q.sub.4 = W.sub.2 · W.sub.3                                                        T.sub.4 = Q.sub.8 + T.sub.3                         W.sub.5 = Y.sub.3 · .sup.-- Y.sub.6                                              Q.sub.5 = W.sub.2 · W.sub.4                                                        T.sub.5 = Q.sub.6 + Q.sub.8 + Q.sub.9               W.sub.6 = .sup.-- Y.sub.1 · .sup.-- Y.sub.5                                      Q.sub.6 = W.sub.1 · W.sub.4                                                        T.sub.6 = Q.sub.5 + Q.sub.6 + Q.sub.7                ##STR35##   Q.sub.7 = W.sub.6 · W.sub.5 · Y.sub.4          W.sub.8 = Y.sub.7 · Y.sub.8                                                      Q.sub.8 =  W.sub.6 · .sup.-- Y.sub.3                     W.sub.9 = Y.sub.7 · Y.sub.9                                                      Q.sub.9 = W.sub.2 · W.sub.5 · Y.sub.1           ______________________________________                                    


12. Decoder apparatus for converting 9-bit input codewords Y=(Y₁, Y₂, .. . , Y₉) generated by encoder apparatus according to claim 9, into8-bit output data blocks X=(X₁, X₂, . . . , X₈), said decoder apparatuscomprising logic gates which implement the following logic relations

    __________________________________________________________________________    X.sub.1 = M.sub.1 · Y.sub.1 + N.sub.1 · Y.sub.1 +           T.sub.1 + H · Y.sub.9                                                X.sub.2 = M.sub.1 · Y.sub.2 + N.sub.1 · .sup.-- Y.sub.4     + R.sub.1 + T.sub.1                                                           X.sub.3 = M.sub.1 · Y.sub.3 + N.sub.1 · Y.sub.3 +           T.sub.1 + H · Y.sub.7                                                X.sub.4 = M.sub.1 · Y.sub.4 + R.sub.1 · .sup.-- Y.sub.4     + T.sub.1 + S.sub.1 · .sup.-- Y.sub.3                                X.sub.5 = M.sub.2 · Y.sub.6 + R.sub.2 · .sup.-- Y.sub.6     + T.sub.2 + S.sub.2 ·  .sup.-- Y.sub.7 + H                           X.sub.6 = M.sub.2 · Y.sub.7 + N.sub.2 · Y.sub.7 +           T.sub.2 + H                                                                   X.sub.7 = M.sub.2 · Y.sub.8 + N.sub.2 · .sup.-- Y.sub.6     + R.sub.2 + T.sub.2 + H                                                       X.sub.8 = M.sub.2 · Y.sub.9 + N.sub.2 · Y.sub.9 +           T.sub.2 + H                                                                   with                                                                          W.sub.1 = Y.sub.1 · Y.sub.2 · Y.sub.3                                               M.sub.1 = Y.sub.5 + W.sub.5                                                              M.sub.2 = Y.sub.5 + W.sub.6                W.sub.2 = W.sub.1 · Y.sub.4                                                                  N.sub.1 = -- M.sub.1 · .sup.-- Y.sub.2                                          N.sub.2 =  -- M.sub.2 ·                                              .sup.-- Y.sub.8                            W.sub.3 = Y.sub.7 · Y.sub.8 · Y.sub.9                                               R.sub.1 = -- M.sub.1 · W.sub.1                                       · W.sub.7                                                                       R.sub.2 = -- M.sub.2 ·                                               W.sub.3 · W.sub.8                 W.sub.4 = W.sub.3 · Y.sub.6                                                                  T.sub.1 = -- M.sub.1 · W.sub.1                                       · .sup.-- Y.sub.4 · .sup.--                                 R.sub.1    T.sub.2 = -- M.sub.2 ·                                               W.sub.3 · .sup.-- R.sub.2          W.sub.5 = Y.sub.4 · Y.sub.8 · .sup.-- Y.sub.6                                       ##STR36##                                                                                ##STR37##                                 W.sub.6 = Y.sub.6 · Y.sub.2 · .sup.-- Y.sub.4 + W.sub.4     · (.sup.-- Y.sub.2 · .sup.-- Y.sub.4 + W.sub.2)                                     H = -- M.sub.1 · W.sub.2 ·                                  .sup.-- Y.sub.6                                        ##STR38##                                                                     ##STR39##                                                                    __________________________________________________________________________


13. Decoder apparatus for converting 9-bit input codewords Y=(Y₁, Y₂, .. . , Y₉) generated by encoder apparatus according to claim 10, into8-bit output data blocks X=(X₁, X₂, . . . , X₈), said decoder apparatuscomprising logic gates which implement the following logic relations

    __________________________________________________________________________    X.sub.1 = T.sub.3 · Y.sub.1 + T.sub.4 + Q.sub.5 ·           Y.sub.1 · W.sub.11 + Q.sub.7 · .sup.-- Y.sub.1 +            Q.sub.9                                                                       X.sub.2 = (T.sub.3 + Q.sub.5) · Y.sub.2 + T.sub.4                    X.sub.3 = T.sub.3 · Y.sub.3 + T.sub.4 + Q.sub.5 ·           W.sub.11 + Q.sub.7 · .sup.-- Y.sub.2 + Q.sub.9 ·            .sup.-- W.sub.5 + Q.sub.10 · Y.sub.1                                 X.sub.4 = (T.sub.3 + Q.sub.12) · Y.sub.4 + Q.sub.4 ·        Y.sub.1 + Q.sub.5 · .sup.-- Y.sub.4 + Q.sub.9 · W.sub.9     + Q.sub.10 · Y.sub.2 + Q.sub.11 · Y.sub.2 ·        Y.sub.4 + Q.sub.13 · Y.sub.6                                         X.sub.5 = T.sub.5 · Y.sub.6 + T.sub.2 · Y.sub.9 +           T.sub.7 · Y.sub.8 + Q.sub.6 · Y.sub.4 + T.sub.6             · Y.sub.1 + Q.sub.13                                                 X.sub.6 = T.sub.5 · Y.sub.7 + T.sub.8 + Q.sub.6 ·           Y.sub.3 + Q.sub.7 · .sup.-- Y.sub.6 + Q.sub.10 ·            .sup.-- Y.sub.9 + Q.sub.13                                                    X.sub.7 = T.sub.9 · Y.sub.8 + T.sub.8 + Q.sub.10 ·          .sup.-- Y.sub.9                                                               X.sub.8 = T.sub.9 · Y.sub. 9 + T.sub.8 + Q.sub.6 ·          Y.sub.1 + Q.sub.7 · .sup.-- Y.sub.9                                  with                                                                           ##STR40##   Q.sub.1 = Y.sub.5 · W.sub.1                                                                     T.sub.1 = Q.sub.1 + Q.sub.2           W.sub.2 = .sup.-- Y.sub.5 · W.sub.1                                              Q.sub.2 = W.sub.10 · Y.sub.6 + W.sub.6 ·                    (Y.sub.8 · W.sub.12 + W.sub.5 · .sup.--                     Y.sub.8)                   T.sub.2 = Q.sub.3 + Q.sub.8            W.sub.3 = Y.sub.6 · Y.sub.7                                                      Q.sub.3 = W.sub.2 · .sup.-- Y.sub.8 ·                       W.sub.3 · -- W.sub.4 · W.sub.12                                                        T.sub.3 = T.sub.1 + T.sub.2            W.sub.4 = Y.sub.3 · Y.sub.4                                                      Q.sub.4 = .sup.-- Y.sub.5 · Y.sub.2 ·                       W.sub.4 · -- W.sub.3                                                                            T.sub.4 = Q.sub.4 + Q.sub.11 +                                                Q.sub.13                               W.sub.5 = .sup.-- Y.sub.2 · Y.sub.3                                              Q.sub.5 = W.sub.2 · .sup.-- Y.sub.7 · --                    W.sub.4 · W.sub.13                                                                              T.sub.5 = T.sub.1 + Q.sub.4 +                                                 Q.sub.12                                W.sub.6 = Y.sub.4 · W.sub.3                                                      ##STR41##                  T.sub.6 = Q.sub.9 + Q.sub.11          W.sub.7 = Y.sub.7 · .sup.-- Y.sub.6                                              Q.sub.7 = W.sub.2 · .sup.-- Y.sub.4 ·                       .sup.-- Y.sub.7 · -- W.sub.13                                                                   T.sub.7 = Q.sub.5 + Q.sub.10           W.sub.8 = Y.sub.8 · W.sub.7                                                      Q.sub.8 = W.sub.2 · W.sub.12 · .sup.--                      Y.sub.8 · W.sub.7 · -- W.sub.5                                                         T.sub.8 = Q.sub.3 + Q.sub.5            W.sub.9 = Y.sub.2 · .sup.-- Y.sub.3                                              Q.sub.9 = W.sub.2 ·  .sup.-- Y.sub.4 ·                      Y.sub.8 · W.sub.3 T.sub.9 = T.sub.5 + Q.sub.13           W.sub.10 = .sup.-- Y.sub.1 · Y.sub.2 · W.sub.4                          Q.sub.10 = .sup.-- Y.sub.5 · .sup.-- Y.sub.6                         · .sup.-- Y.sub.7 · (.sup.-- Y.sub.3                        · Y.sub.4 + W.sub.10)                                    W.sub.11 = Y.sub.2 + Y.sub.3                                                              Q.sub.11 = .sup.-- Y.sub.5 · W.sub.8 ·                      (.sup.-- Y.sub.1 · Y.sub.2 · Y.sub.3 +                      Y.sub.1 · .sup.-- Y.sub.3 · Y.sub.4)            W.sub.12 = W.sub.11 + Y.sub.1                                                             Q.sub.12 =  .sup.-- Y.sub.5 · -- W.sub.1                 W.sub.13 = Y.sub.6 · Y.sub.9                                                     Q.sub.13 = .sup.-- Y.sub.5 · -- W.sub.12 + Y.sub.5                   · -- W.sub.1                                             W.sub.14 = Y.sub.4 + Y.sub.6                                                  W.sub.15 = Y.sub.3 + Y.sub.7                                                  W.sub.16 = W.sub.14 + Y.sub.8                                                 W.sub.17 = W.sub.1 + .sup.-- Y.sub.4                                          __________________________________________________________________________